// TaskSpeed, the DOM way by WebReflection
window.tests = {

    "make": function(){

        for (var i = 0; i < 250; i++) {
            Ext.DomHelper.append(document.body, {
                tag: 'ul',
                id: 'setid'+i,
                cls: 'fromcode',
                cn: [
                     {tag: 'li', html: 'one'},
                     {tag: 'li', html: 'two'},
                     {tag: 'li', html: 'three'},
                ]
            });
        }
        return Ext.query('ul.fromcode').length;
    },

    "indexof" : function(){
        var index;

        for (var i = 0; i < 20; i++) {
            index = Ext.query('ul').indexOf(Ext.getDom('setid150'));
        }
        
        return index;
    },

    "bind" : function(){
        return Ext.select('ul > li').on('click', function(){}).getCount();
    },

    "attr" : function(){
        return Ext.select('ul').getAttribute('id').getCount();
    },

    "bindattr" : function(){
        var f = function () {};
        return Ext.select('ul > li').on('mouseover', f).set({rel: 'touched'}).un('mouseover').getCount();
    },

    "table": function(){
        var t = new Ext.Template('<table><tr><td></td><td></td></tr></table>');
        t.compile();

        for(var i = 0; i < 40; i++){
            t.append(Ext.getBody());
        }
        
        return Ext.query('tr td').length;
    },

    "addanchor" : function(){
        return Ext.select('.fromcode > li').createChild({tag: 'a', href: 'http://example.com', html: 'link'}).getCount();
    },

    "append": function(){
        for(var i = 0; i<500; i++){
            Ext.getBody().createChild({tag: 'div', rel: 'foo', html: 'test'});
        }
        return Ext.query('[rel^="foo"]').length;
    },

    "addclass-odd" : function(){
        return Ext.select('div').addClass('added').filter(':odd').addClass('odd').getCount() - 1;
    },

    "style" : function(){
        return Ext.select('.added').setStyle({ backgroundColor:"#ededed", color:"#fff"}).getCount();
    },

    "removeclass" : function(){
        return Ext.select('.added').removeClass('added').getCount();
    },
    
    "sethtml": function(){

        var s = Ext.select('div');

        s.each(function(el){
            el.dom.innerHTML = '<p>new content</p>';
        });

        return s.getCount();
    },

    "insertbefore" : function(){
        var s = Ext.select('.fromcode a');

        s.each(function (el) {
            Ext.DomHelper.insertBefore(el, {tag: 'p', html:'a link'});
        });

        return s.getCount();
    },

    "insertafter" : function(){
        var s = Ext.select('.fromcode a');

        s.each(function (el) {
            Ext.DomHelper.insertAfter(el, {tag: 'p', html:'after link'});
        });

        return s.getCount();
    },

    "destroy": function(){
        return Ext.select('.fromcode').remove().getCount();
    },

    "finale": function(){
        document.body.innerHTML = '';
        return Ext.query('body *').length;
    }

};

